Imports TeamUp.GarantiaTransacional
Imports Conexao
Imports System.Text
Imports System.Collections.Generic
Imports TeamUp.Entidades

Public Class EstimativaDao
    Inherits Model

    Public Sub New(ByVal objGarantiaTransacional As GTransacional)
        GarantiaTransacional = objGarantiaTransacional
    End Sub

    Public Function getEstimativa(ByVal objParametroEstimativa As ParametroEstimativa) As List(Of Estimativa)
        Dim strSql As String
        Dim objConBanco As ConexaoBanco = New ConexaoBanco
        Dim objResultado As DataSet
        Dim lstEstimativa As List(Of Estimativa) = Nothing
        Dim strCriterio As String = "WHERE"
        Dim intContador As Integer
        Try
            strSql = "SELECT idEstimativa, idUsuario, idAtividade, esfoco, novasPremissas, rodada  FROM Estimativas "

            If Not objParametroEstimativa Is Nothing AndAlso objParametroEstimativa.getIdEstimativa <> "" Then
                strSql += strCriterio + " idEstimativa = " + objParametroEstimativa.getIdEstimativa + ""
                strCriterio = " AND "
            End If

            If Not objParametroEstimativa Is Nothing AndAlso objParametroEstimativa.getIdAtividade <> "" Then
                strSql += strCriterio + " idAtividade = " + objParametroEstimativa.getIdAtividade + ""
                strCriterio = " AND "
            End If

            If Not objParametroEstimativa Is Nothing AndAlso objParametroEstimativa.getIdUsuario <> "" Then
                strSql += strCriterio + " idUsuario = " + objParametroEstimativa.getIdUsuario + ""
                strCriterio = " AND "
            End If

            If Not objParametroEstimativa Is Nothing AndAlso objParametroEstimativa.getRodada <> "" Then
                strSql += strCriterio + " rodada = " + objParametroEstimativa.getRodada + ""
                strCriterio = " AND "
            End If


            strSql += " ORDER BY rodada "

            objResultado = objConBanco.executarConsulta(strSql)

            If objResultado.Tables(0).Rows.Count > 0 Then
                lstEstimativa = New List(Of Estimativa)
                For intContador = 0 To objResultado.Tables(0).Rows.Count - 1
                    lstEstimativa.Add(New Estimativa(objResultado.Tables(0).Rows(intContador)("esfoco"), _
                                        objResultado.Tables(0).Rows(intContador)("novasPremissas"), _
                                        objResultado.Tables(0).Rows(intContador)("rodada"), _
                                        New Usuario("", "", "", objResultado.Tables(0).Rows(intContador)("idUsuario")), _
                                        objResultado.Tables(0).Rows(intContador)("idAtividade"), _
                                        objResultado.Tables(0).Rows(intContador)("idEstimativa")))
                Next
            End If

            getEstimativa = lstEstimativa

        Finally
        End Try
    End Function

    Public Sub incluirEstimativa(ByVal objEstimativa As Estimativa)
        Dim strSql As String
        Dim objConBanco As ConexaoBanco = New ConexaoBanco
        Dim objResultado As Object
        Try
            strSql = "Insert into Estimativas(idUsuario,idAtividade,esfoco,novasPremissas,rodada) VALUES (" & _
                    objEstimativa.getUsuario.getId & "," & objEstimativa.getIdAtividade & "," & Replace(objEstimativa.getEsforco, ",", ".") & ",'" & objEstimativa.getNovaPremissa & "'," & objEstimativa.getRodada & ")"

            objResultado = objConBanco.executarSPScalar(strSql, GarantiaTransacional.getConexao, GarantiaTransacional.getTransacao)


        Finally
        End Try
    End Sub

    Public Sub alterarEstimativa(ByVal objEstimativa As Estimativa)
        Dim strSql As String
        Dim objConBanco As ConexaoBanco = New ConexaoBanco
        Dim objResultado As Object
        Try
            strSql = "UpDate Estimativas set esfoco = " & Replace(objEstimativa.getEsforco, ",", ".") & " , novasPremissas = '" & objEstimativa.getNovaPremissa & "', rodada = " & objEstimativa.getRodada & "  WHERE idEstimativa = " & objEstimativa.getId

            objResultado = objConBanco.executarSPScalar(strSql, GarantiaTransacional.getConexao, GarantiaTransacional.getTransacao)
        Finally
        End Try
    End Sub

End Class
